<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class produto extends CI_Controller {
    private $sessao;

    function __construct(){
        parent::__construct();
        $this->load->model("ProdutoModel");
        $this->load->model("CategoriaModel");
        $this->load->model("FornecedorModel");
        $this->load->model("ClienteModel");
        $this->load->model("Selects");
        $this->load->model("PedidoModel");
        $this->load->model("Log");
        $this->load->helper("auth");
        $this->sessao = a_logado();
    }
    /** Funçao responsavel pro mostrar um produto no perfil apropriado para o admin.
     *
     * @param int $idProduto
     */
    public function perfil($idProduto = ""){

    }

    public function index($mensagem = ""){
        $produtos = $this->Selects->listarProdutoFornecedores();
        $this->load->helper("html");

        if( $produtos != false ) :
            $lista = "";
            $linha = 0;
            $cc = array('src'=>"images/tabelas/cc.png", 'height' => '26px');
            $oferta = array('src'=>"images/tabelas/oferta.png", 'height' => '26px');
            foreach( $produtos->result() as $produto ) :
                if ($linha == 0)
                    $lista .= "<tr class=\"impar\">\n\t\t";
                else
                    $lista .= "<tr>\n\t\t";
                $lista .= "<td><input type=\"checkbox\" name=\"produto_$produto->idProduto\"/></td>\n\t";
                $lista .= "<td>". anchor("admin/produto/editar/".$produto->idProduto, $produto->pnome)."</td>\n\t";
                $lista .= "<td>". anchor("admin/fornecedor/editar/".$produto->idFornecedor, $produto->fnome)."</td>\n\t";
                //$lista .= "<td>$produto->descricao</td>\n\t";
                $lista .= "<td>$produto->quantidade</td>\n\t";
                $lista .= "<td><center>". anchor("admin/produto/criar_cc/".$produto->idProduto, img($cc))."</center></td>\n\t";
                $lista .= "<td><center>". anchor("admin/produto/criar_oferta/".$produto->idProduto, img($oferta))."</center></td>\n\t";
                $lista .= "<td>". anchor("admin/produto/criar_intencao/".$produto->idProduto, "X")."</td>\n\t";
                if($produto->autorizado == true)
                    $lista .= "<td>Sim</td>\n";
                else
                    $lista .= "<td>Não</td>\n";
                $lista .= "</tr>\n";

                if ($linha == 0 ) $linha = 1;
                else $linha = 0;

            endforeach;

        else :
            $lista = "<tr>\n\t";
            $lista .= "<td colspan=\"3\">Nenhum produto cadastrado.</td>\n";
            $lista .= "</tr>\n";

        endif;

        if($mensagem != "") $mensagem = "\nOperação realizada com Sucesso!\n";
        $dados = array(
            "titulo" => "Gerenciamento de Produtos",
            "user" => $this->sessao->nome,
            "lista" => $lista,
            "mensagem" => $mensagem
            );

        $main = array(
            "dados" => $dados,
            "link" => "admin/listar_produto_view",
            );
        $this->load->view("template",$main);
    }

     public function fornecedor($idFornecedor = "", $mensagem = ""){
        if($idFornecedor == "") show_error("Fornecedor Inexistente");
        $fornecedor = $this->FornecedorModel->getFornecedor($idFornecedor);
        if ($fornecedor == false) show_404 ();

        //Busca entre o nome dos produtos
        $this->load->helper("form");
        $this->load->helper("html");
        $this->load->library("form_validation");

        $this->form_validation->set_rules('categoria[]', 'Categoria');

        $categoria = $this->input->post("categoria");
        $categoria = $categoria[count($categoria)-1];

        if($this->input->post("tipo") == "")
            $tipo = "todos";
        else
            $tipo = $this->input->post("tipo");

        if($categoria != 0)
            $produtos = $this->ProdutoModel->getProdutoFornecedorCateg($idFornecedor, $categoria, $tipo);
        else
            $produtos = $this->ProdutoModel->getProdutoFornecedor($idFornecedor, $tipo);

        $lista = "";
        $linha = 0;
        $cc = array('src'=>"images/tabelas/compra_coletiva.png", 'height' => '24px', "style" => "border:0;");
        $oferta = array('src'=>"images/tabelas/oferta.png", 'height' => '22px', "style" => "border:0;");
        $intencao = array('src'=>"images/tabelas/intencao.png", 'height' => '22px', "style" => "border:0;");
        $cc_off = array('src'=>"images/tabelas/compra_coletiva_off.png", 'height' => '24px', "style" => "border:0;");
        $oferta_off = array('src'=>"images/tabelas/oferta_off.png", 'height' => '22px', "style" => "border:0;");
        $intencao_off = array('src'=>"images/tabelas/intencao_off.png", 'height' => '22px', "style" => "border:0;");

        if( $produtos != false ) :
            foreach($produtos->result() as $produto):
               
                $paisCateg = pais_categ($produto->idCategoria);

                if ($linha == 0)
                    $lista .= "<tr class=\"impar\">\n\t\t";
                else
                    $lista .= "<tr>\n\t\t";
                //$lista .= "<td>$paisCateg</td>\n\t";
                $lista .= "<td><input type=\"checkbox\" name=\"produto_$produto->idProduto\"/></td>\n\t";
                $lista .= "<td>". anchor("admin/produto/editar/$produto->idProduto/$idFornecedor", $produto->nome)."</td>\n\t";
                $lista .= "<td>$produto->quantidade</td>\n\t";
                $lista .= "<td>$paisCateg</td>\n\t";
                if($produto->tipo == "normal"){
                    $lista .= "<td><center>". anchor("admin/produto/criar_cc/$produto->idProduto/$idFornecedor", img($cc_off))."</center></td>\n\t";
                    $lista .= "<td><center>". anchor("admin/produto/criar_oferta/$produto->idProduto/$idFornecedor", img($oferta_off))."</center></td>\n\t";
                    $lista .= "<td><center>". anchor("admin/produto/criar_intencao/$produto->idProduto/$idFornecedor", img($intencao_off))."</center></td>\n\t";
                }
                elseif($produto->tipo == "compra coletiva"){
                    $lista .= "<td><center>". anchor("admin/produto/criar_cc/$produto->idProduto/$idFornecedor", img($cc))."</center></td>\n\t";
                    $lista .= "<td><center>". anchor("admin/produto/criar_oferta/$produto->idProduto/$idFornecedor", img($oferta_off))."</center></td>\n\t";
                    $lista .= "<td><center>". anchor("admin/produto/criar_intencao/$produto->idProduto/$idFornecedor", img($intencao_off))."</center></td>\n\t";
                }
                elseif($produto->tipo == "oferta"){
                    $lista .= "<td><center>". anchor("admin/produto/criar_cc/$produto->idProduto/$idFornecedor", img($cc_off))."</center></td>\n\t";
                    $lista .= "<td><center>". anchor("admin/produto/criar_oferta/$produto->idProduto/$idFornecedor", img($oferta))."</center></td>\n\t";
                    $lista .= "<td><center>". anchor("admin/produto/criar_intencao/$produto->idProduto/$idFornecedor", img($intencao_off))."</center></td>\n\t";
                }
                elseif($produto->tipo == "intencao"){
                    $lista .= "<td><center>". anchor("admin/produto/criar_cc/$produto->idProduto/$idFornecedor", img($cc_off))."</center></td>\n\t";
                    $lista .= "<td><center>". anchor("admin/produto/criar_oferta/$produto->idProduto/$idFornecedor", img($oferta_off))."</center></td>\n\t";
                    $lista .= "<td><center>". anchor("admin/produto/criar_intencao/$produto->idProduto/$idFornecedor", img($intencao))."</center></td>\n\t";
                }
                if($produto->autorizado == true)
                    $lista .= "<td><center>Sim</center></td>\n";
                else
                    $lista .= "<td><center>Não</center></td>\n";
                $lista .= "</tr>\n";

                if($linha == 0) $linha = 1;
                else $linha = 0;
            endforeach;
        else :
            $lista = "<tr>\n\t";
            $lista .= "<td colspan=\"3\">Nenhum produto encontrado</td><td><td><td>\n";
            $lista .= "</tr>\n";

            if ($linha == 0 ) $linha = 1;
            else $linha = 0;
        endif;

        if($mensagem != "") $mensagem = "\nOperaç&atilde;o realizada com Sucesso!\n";
        else $mensagem  = "";

        $categorias = "";
        $row = $this->CategoriaModel->getCategoriaNivel(0);
        if( $row->num_rows() > 0 ) :
            foreach($row->result() as $categoria) :
                $categorias .= "<option value=\"$categoria->idCategoria\"". set_select("categoria_1", $categoria->nome). ">$categoria->nome</option>\n";
            endforeach;
        else :
            break;
        endif;

        $dados = array(
             "titulo" => "Produtos do fornecedor $fornecedor->razaoSocial",
             "lista" => $lista,
             "fornecedor" => $fornecedor,
             "categorias" => $categorias,
             "mensagem" => $mensagem
            );

        $main = array(
            "dados" => $dados,
            "link" => "admin/listar_produto_fornecedor_view",
            );

        //$this->Log->inserir(tipo_usuario(), id_tipo_usuario(),"visitou produtos", "fornecedor", $idFornecedor);

        $this->load->view("template",$main);
    }
    
    public function cadastrar($idFornecedor = ""){

        $this->load->helper("form");
        $this->load->library("form_validation");

        $categorias = "";

        $row = $this->CategoriaModel->getCategoriaNivel(0);
        if( $row->num_rows() > 0 ) :
            foreach($row->result() as $categoria) :
                $categorias .= "<option value=\"$categoria->idCategoria\"". set_select("categoria_1", $categoria->nome). ">$categoria->nome</option>\n";
            endforeach;
        else :
            break;
        endif;

        if($idFornecedor == ""){
            $row = $this->FornecedorModel->listar();
            $fornecedores = "";
            foreach($row->result() as $fornecedor) :
                $fornecedores .= "<option value=\"$fornecedor->idFornecedor\"" .set_select("fornecedor", $fornecedor->idFornecedor). ">$fornecedor->nome</option>\n";
            endforeach;
        }
        else{
            $row = $this->FornecedorModel->listar();
            $fornecedores = "";
            foreach($row->result() as $fornecedor) :
                if($idFornecedor == $fornecedor->idFornecedor)
                    $fornecedores .= "<option value=\"$fornecedor->idFornecedor\" selected=\"selected\"".
                        set_select("fornecedor", $fornecedor->idFornecedor). ">$fornecedor->nome</option>\n";
                else
                    $fornecedores .= "<option value=\"$fornecedor->idFornecedor\"".
                        set_select("fornecedor", $fornecedor->idFornecedor). ">$fornecedor->nome</option>\n";
            endforeach;
        }

         $options = array(
                  'normal'    => 'Normal',
                  'oferta'    => 'Oferta',
                  'compra coletiva'    => 'Compra Coletiva',
                  'intencao'    => 'Por Interesse'
                );
         $tipo = form_dropdown("status", $options, "normal");

        $dados = array(
            "titulo" => "Cadastro de Produtos",
            "idFornecedor" => $idFornecedor,
            "categorias" => $categorias,
            "fornecedores" => $fornecedores,
            "erro" => "",
            "tipo" => $tipo
            );

        $main = array(
            "dados" => $dados,
            "link" => "admin/cad_produto_view",
            );
        
        $this->form_validation->set_rules('nome', 'Nome', 'required|min_length[4]|max_length[20]');
        $this->form_validation->set_rules('descricao', 'Descricao');
        $this->form_validation->set_rules('quantidade', 'Quantidade', 'required|numeric');
        $this->form_validation->set_rules('preco', 'Preco', 'required');
        $this->form_validation->set_rules('prazoEntrega', 'Prazo de Entrega', 'required');
        $this->form_validation->set_rules('prazoPagamento', 'Prazo de Pagamento', 'required');
        $this->form_validation->set_rules('formaPagamento', 'Forma de Pagamento', 'required');
        $this->form_validation->set_rules('categoria[]', 'Categoria', 'callback_select_check');
        $this->form_validation->set_rules('fornecedor', 'Fornecedor', 'callback_select_check');
        $this->form_validation->set_rules('comissao', 'Comissao', 'required');
        $this->form_validation->set_rules('autorizado', 'Autorizado');
        $this->form_validation->set_rules('imagem', 'Imagem');
        if($this->input->post("tipo") == "compra_coletiva"){
            $this->form_validation->set_rules('compraColetivaMin', 'Compra Coletiva Mínimo', "required");
            $this->form_validation->set_rules('precoAntigo', 'Preço antigo' , 'required');
        }
        elseif($this->input->post("tipo") == "oferta"){
            $this->form_validation->set_rules('precoAntigo', 'Preço antigo' ,'required');
        }
        
        elseif($this->input->post("tipo") == "intencao"){
            $this->form_validation->set_rules('precoAntigo', 'Preço antigo' ,'required');
            $this->form_validation->set_rules('cliente', 'Cliente' ,'callback_select_check');
        }
       
        if ($this->form_validation->run() == false) :
            $categoriasArray = $this->input->post("categoria");
            if($categoriasArray){
                $max = count($categoriasArray);
                //print_r($categoriasArray);
                if( $max > 0 ) {
                    $categorias = array();
                    for($i=$max-1, $j=0; $j<$max ; $j++, $i--){
                        if($j==0)
                            $row = $this->CategoriaModel->getCategoriaNivel($j);
                        else
                            $row = $this->CategoriaModel->getCategoriaFilhos($categoriasArray[$j-1]);
                        if($row != false) {
                                if($j==0)
                                    $categorias[$j] .= "<label> <p>Categoria</p>";
                                else
                                    $categorias[$j] .= "<label><p style=\"float: left\">Sub-Nivel ".($j+1)." </p>";
                                $categorias[$j] .= "<select name=\"categoria[]\" id=\"categoria_".($j+1)."\" onchange=\"teste(this)\">";
                                $categorias[$j] .= "<option value=\"0\">--Selecione--</option>";
                            foreach($row->result() as $categoria) {
                                if($categoria->idCategoria ==  $categoriasArray[$j]){
                                    $categorias[$j] .= "<option value=\"$categoria->idCategoria\" selected=\"selected\">$categoria->nome</option>\n";
                                    }
                                else
                                    $categorias[$j] .= "<option value=\"$categoria->idCategoria\">$categoria->nome</option>\n";
                            }
                            $categorias[$j] .= "</select><br clear=\"left\"></label>";
                        }
                        else{} //echo "Teste";
                    }
                }
            }
            else{
                $categorias = array();

                $row = $this->CategoriaModel->getCategoriaNivel(0);
                if( $row->num_rows() > 0 ) :
                        $categorias[0] .= "<label> <p>Categoria</p>";
                        $categorias[0] .= "<select name=\"categoria[]\" id=\"categoria_1\" onchange=\"teste(this)\">";
                        $categorias[0] .= "<option value=\"0\">--Selecione--</option>";
                    foreach($row->result() as $categoria) :
                        $categorias[0] .= "<option value=\"$categoria->idCategoria\"". set_select("categoria_1", $categoria->nome). ">$categoria->nome</option>\n";
                    endforeach;
                    $categorias[0] .= "</select><br clear=\"left\"></label>";
                else :
                    break;
                endif;
            }
            $dados = array(
            "titulo" => "Cadastro de Produtos",
            "idFornecedor" => $idFornecedor,
            "categorias" => $categorias,
            "fornecedores" => $fornecedores,
            "erro" => "",
            "tipo" => $tipo
            );

        $main = array(
            "dados" => $dados,
            "link" => "admin/cad_produto_view",
            );

            $this->load->view('template', $main);

        else :
            $dir = './fotos/produto/';
            $config['upload_path'] = $dir;
            $config['allowed_types'] = 'gif|jpg|png';
            $config['file_name'] = "arquivo_novo";
            $config['max_size']	= '1000';
            $config['max_width']  = '1024';
            $config['max_height']  = '768';

            $this->load->library('upload', $config);
           $this->upload->do_upload();
            if( strstr("Você não selecionou um arquivo para envio", $this->upload->display_errors())){
                $dados["erro"] = $this->upload->display_errors();
                $main['dados'] = $dados;
                $this->load->view('template', $main);
            }
            else{
                $insert = array(
                    "nome"  => $this->input->post("nome"),
                    "descricao" => $this->input->post("descricao"),
                    "quantidade" => $this->input->post("quantidade"),
                    "preco" => preco_bd($this->input->post("preco")),
                    "precoAntigo" => preco_bd($this->input->post("precoAntigo")),
                    "formaPagamento" => $this->input->post("formaPagamento"),
                    "prazoPagamento" => $this->input->post("prazoPagamento"),
                    "prazoEntrega" => $this->input->post("prazoEntrega"),
                    "idFornecedor" => $this->input->post("fornecedor"),
                    "comissao" => $this->input->post("comissao"),
                    "autorizado" => $this->input->post("autorizado"),
                    "destaque" => $this->input->post("destaque"),
                    "tipo" => $this->input->post("tipo"),
                    "dataCadastro" => timestamp()
                    );
                if($this->input->post("tipo") == "compra_coletiva"){
                    $insert['compraColetivMin'] = $this->input->post("compraColetivMin");
                    $insert['precoAntigo'] = $this->input->post("precoAntigo");
                }
                elseif($this->input->post("tipo") == "oferta"){
                    $insert['precoAntigo'] = $this->input->post("precoAntigo");
                }

                elseif($this->input->post("tipo") == "intencao"){
                    $insert['precoAntigo'] = $this->input->post("precoAntigo");
                    $insert['intancao'] = md5($this->input->post("precoAntigo"));
                }


                $this->form_validation->set_rules('categoria[]', 'Categoria', 'callback_select_check');
                $categoria = $this->input->post("categoria");
                $insert['idCategoria'] = $categoria[count($categoria)-1];

                $idInserido = $this->ProdutoModel->inserir($insert);
                $data_file = $this->upload->data();
                rename("fotos/produto/arquivo_novo".$data_file['file_ext'], "fotos/produto/$idInserido".$data_file['file_ext']);

                $this->Log->inserir(tipo_usuario(), id_tipo_usuario(), "cadastrou", "produto", $idInserido);
                redirect("admin/produto/fornecedor/$idFornecedor/sucesso");
            }
            
        endif;
    }
   
    public function criar_oferta($idProduto = "", $idFornecedor = ""){
        if($idProduto == "") show_error("ERRO");

        $this->load->helper("form");
        $this->load->library("form_validation");
        $produto = $this->ProdutoModel->getProduto($idProduto);

        if ($produto == false) show_error("Este produto n&atildeo existe");

        $categoriasArray = $this->CategoriaModel->getCategoriaAtualPais($produto->idCategoria);
        if ($categoriasArray == false) show_404 ();
        $max = count($categoriasArray);
        //print_r($categoriasArray);
        if( $max > 0 ) {
            $categorias = array();
            for($i=$max-1, $j=0; $i>-1 ; $j++, $i--){
                if($j==0)
                    $row = $this->CategoriaModel->getCategoriaNivel($j);
                else
                    $row = $this->CategoriaModel->getCategoriaFilhos ($categoriasArray[$i+1]->idCategoria);
                if( $row != false) {
                        if($j==0)
                            $categorias[$j] .= "<label> <p>Categoria</p>";
                        else
                            $categorias[$j] .= "<label><p style=\"float: left\">Sub-Nivel ".($max-$i)." </p>";
                        $categorias[$j] .= "<select name=\"categoria[]\" id=\"categoria_".($max-$i)."\" onchange=\"teste(this)\">";
                        $categorias[$j] .= "<option value=\"0\">--Selecione--</option>";
                    foreach($row->result() as $categoria) {
                        if($categoria->idCategoria ==  $categoriasArray[$i]->idCategoria){
                            $categorias[$j] .= "<option value=\"$categoria->idCategoria\" selected=\"selected\">$categoria->nome</option>\n";
                            }
                        else
                            $categorias[$j] .= "<option value=\"$categoria->idCategoria\">$categoria->nome</option>\n";

                    }
                    $categorias[$j] .= "</select><br clear=\"left\"></label>";
                }
                else show_error ("Erro nas categorias");
            }
        }

        $row = $this->FornecedorModel->listar();
        $fornecedores = "";
        foreach($row->result() as $fornecedor) :
            if($produto->idFornecedor == $fornecedor->idFornecedor)
                $fornecedores .= "<option value=\"$fornecedor->idFornecedor\" selected=\"selected\"".
                    set_select("fornecedor", $fornecedor->idFornecedor). ">$fornecedor->nome</option>\n";
            else
                $fornecedores .= "<option value=\"$fornecedor->idFornecedor\"".
                    set_select("fornecedor", $fornecedor->idFornecedor). ">$fornecedor->nome</option>\n";
        endforeach;

        $local = foto_produto_local($idProduto);
        $dados = array(
            "titulo" => "Criar Compra Coletiva",
            "user" => $this->sessao->nome,
            "categoriasArray" => $categoriasArray,
            "categorias" => $categorias,
            "fornecedores" => $fornecedores,
            "foto" => foto_produto($idProduto),
            "produto" => $produto,
            "idFornecedor" => $idFornecedor
            );
        $main = array(
            "dados" => $dados,
            "link" => "admin/cad_produto_oferta_view",
            );

        $this->form_validation->set_rules('nome', 'Nome', 'required|min_length[4]');
        $this->form_validation->set_rules('descricao', 'Descricao');
        $this->form_validation->set_rules('quantidade', 'Quantidade', 'required|numeric');
        $this->form_validation->set_rules('preco', 'Preco', 'required');
        $this->form_validation->set_rules('prazoEntrega', 'Prazo de Entrega', 'required');
        $this->form_validation->set_rules('prazoPagamento', 'Prazo de Pagamento', 'required');
        $this->form_validation->set_rules('formaPagamento', 'Forma de Pagamento', 'required');
        $this->form_validation->set_rules('categoria[]', 'Categoria', 'callback_select_check');
        $this->form_validation->set_rules('fornecedor', 'Fornecedor','callback_select_check');
        $this->form_validation->set_rules('comissao', 'Comissao', 'required');
        $this->form_validation->set_rules('autorizado', 'Autorizado', 'required');
        $this->form_validation->set_rules('compraColetivaMin', 'CompraColetivaMin','required');

        if ($this->form_validation->run() == false) :
            $this->load->view('template', $main);

        else :

            $dir = './fotos/produto/';
            $config['upload_path'] = $dir;
            $config['allowed_types'] = 'gif|jpg|png';
            $config['file_name'] = "arquivo_novo";
            $config['max_size']	= '1000';
            $config['max_width']  = '1024';
            $config['max_height']  = '768';

            $this->load->library('upload', $config);
           $this->upload->do_upload();
            if( strstr("Você não selecionou um arquivo para envio", $this->upload->display_errors())){
                $dados["erro"] = $this->upload->display_errors();
                $main['dados'] = $dados;
                $this->load->view('template', $main);
            }
            else{
                $campos = array(
                    "nome"  => $this->input->post("nome"),
                    "descricao" => $this->input->post("descricao"),
                    "quantidade" => $this->input->post("quantidade"),
                    "preco" => preco_bd($this->input->post("preco")),
                    "precoAntigo" => preco_bd($this->input->post("precoAntigo")),
                    "formaPagamento" => $this->input->post("formaPagamento"),
                    "prazoPagamento" => $this->input->post("prazoPagamento"),
                    "prazoEntrega" => $this->input->post("prazoEntrega"),
                    "idFornecedor" => $this->input->post("fornecedor"),
                    "comissao" => $this->input->post("comissao"),
                    "autorizado" => $this->input->post("autorizado"),
                    "tipo" => "oferta",
                    "compracoletivaMin" => $this->input->post("compraColetivaMin"),
                    "dataCadastro" => timestamp()
                    );

                $categoria = $this->input->post("categoria");
                $campos['idCategoria'] = $categoria[count($categoria)-1];

                $idInserido = $this->ProdutoModel->inserir($campos);

                if($this->input->post("diminuir_quantidade")){
                    $update['quantidade'] = $produto->quantidade - $this->input->post("quantidade");
                    $this->ProdutoModel->update($produto->idProduto, $update);
                }

                $data_file = $this->upload->data();
                //echo $local;
                if($data_file["is_image"] != ""){
                    rename("fotos/produto/arquivo_novo".$data_file['file_ext'], "fotos/produto/$idInserido".$data_file['file_ext']);
                }
                elseif($local != false){
                    if(strstr($local,"jpg"))
                        copy($local,"fotos/produto/$idInserido.jpg");
                    elseif(strstr($local,"png"))
                        copy($local,"fotos/produto/$idInserido.png");
                    elseif(strstr($local,"gif"))
                        copy($local,"fotos/produto/$idInserido.gif");
                }

               $this->Log->inserir(tipo_usuario(), id_tipo_usuario(), "cadastrou", "produto", $idInserido);
               redirect("admin/produto/fornecedor/$idFornecedor/sucesso");
            }
        endif;
    }

    public function criar_cc($idProduto = "", $idFornecedor = ""){
        if($idProduto == "") show_error("ERRO");

        $this->load->helper("form");
        $this->load->library("form_validation");
        $produto = $this->ProdutoModel->getProduto($idProduto);

        if ($produto == false) show_error("Este produto n&atildeo existe");

        $categoriasArray = $this->CategoriaModel->getCategoriaAtualPais($produto->idCategoria);
        if ($categoriasArray == false) show_404 ();
        $max = count($categoriasArray);
        //print_r($categoriasArray);
        if( $max > 0 ) {
            $categorias = array();
            for($i=$max-1, $j=0; $i>-1 ; $j++, $i--){
                if($j==0)
                    $row = $this->CategoriaModel->getCategoriaNivel($j);
                else
                    $row = $this->CategoriaModel->getCategoriaFilhos ($categoriasArray[$i+1]->idCategoria);
                if( $row != false) {
                        if($j==0)
                            $categorias[$j] .= "<label> <p>Categoria</p>";
                        else
                            $categorias[$j] .= "<label><p style=\"float: left\">Sub-Nivel ".($max-$i)." </p>";
                        $categorias[$j] .= "<select name=\"categoria[]\" id=\"categoria_".($max-$i)."\" onchange=\"teste(this)\">";
                        $categorias[$j] .= "<option value=\"0\">--Selecione--</option>";
                    foreach($row->result() as $categoria) {
                        if($categoria->idCategoria ==  $categoriasArray[$i]->idCategoria){
                            $categorias[$j] .= "<option value=\"$categoria->idCategoria\" selected=\"selected\">$categoria->nome</option>\n";
                            }
                        else
                            $categorias[$j] .= "<option value=\"$categoria->idCategoria\">$categoria->nome</option>\n";

                    }
                    $categorias[$j] .= "</select><br clear=\"left\"></label>";
                }
                else show_error ("Erro nas categorias");
            }
        }

        $row = $this->FornecedorModel->listar();
        $fornecedores = "";
        foreach($row->result() as $fornecedor) :
            if($produto->idFornecedor == $fornecedor->idFornecedor)
                $fornecedores .= "<option value=\"$fornecedor->idFornecedor\" selected=\"selected\"".
                    set_select("fornecedor", $fornecedor->idFornecedor). ">$fornecedor->nome</option>\n";
            else
                $fornecedores .= "<option value=\"$fornecedor->idFornecedor\"".
                    set_select("fornecedor", $fornecedor->idFornecedor). ">$fornecedor->nome</option>\n";
        endforeach;

        $local = foto_produto_local($idProduto);
        $dados = array(
            "titulo" => "Criar Compra Coletiva",
            "user" => $this->sessao->nome,
            "categoriasArray" => $categoriasArray,
            "categorias" => $categorias,
            "fornecedores" => $fornecedores,
            "foto" => foto_produto($idProduto),
            "produto" => $produto,
            "idFornecedor" => $idFornecedor
            );
        $main = array(
            "dados" => $dados,
            "link" => "admin/cad_produto_cc_view",
            );

        $this->form_validation->set_rules('nome', 'Nome', 'required|min_length[4]');
        $this->form_validation->set_rules('descricao', 'Descrição');
        $this->form_validation->set_rules('quantidade', 'Quantidade', 'required|numeric');
        $this->form_validation->set_rules('preco', 'Preço', 'required');
        $this->form_validation->set_rules('precoAntigo', 'Preço Antigo', 'required');
        $this->form_validation->set_rules('prazoEntrega', 'Prazo de Entrega', 'required');
        $this->form_validation->set_rules('prazoPagamento', 'Prazo de Pagamento', 'required');
        $this->form_validation->set_rules('formaPagamento', 'Forma de Pagamento', 'required');
        $this->form_validation->set_rules('categoria[]', 'Categoria', 'callback_select_check');
        $this->form_validation->set_rules('fornecedor', 'Fornecedor','callback_select_check');
        $this->form_validation->set_rules('comissao', 'Comissao', 'required');
        $this->form_validation->set_rules('autorizado', 'Autorizado', 'required');
        $this->form_validation->set_rules('compraColetivaMin', 'CompraColetivaMin','required');

        if ($this->form_validation->run() == false) :
            $this->load->view('template', $main);

        else :

            $dir = './fotos/produto/';
            $config['upload_path'] = $dir;
            $config['allowed_types'] = 'gif|jpg|png';
            $config['file_name'] = "arquivo_novo";
            $config['max_size']	= '1000';
            $config['max_width']  = '1024';
            $config['max_height']  = '768';

            $this->load->library('upload', $config);
            $this->upload->do_upload();
            if( strstr("Você não selecionou um arquivo para envio", $this->upload->display_errors())){
                $dados["erro"] = $this->upload->display_errors();
                $main['dados'] = $dados;
                $this->load->view('template', $main);
            }
            else{
                $campos = array(
                    "nome"  => $this->input->post("nome"),
                    "descricao" => $this->input->post("descricao"),
                    "quantidade" => $this->input->post("quantidade"),
                    "preco" => preco_bd($this->input->post("preco")),
                    "precoAntigo" => preco_bd($this->input->post("precoAntigo")),
                    "formaPagamento" => $this->input->post("formaPagamento"),
                    "prazoPagamento" => $this->input->post("prazoPagamento"),
                    "prazoEntrega" => $this->input->post("prazoEntrega"),
                    "idFornecedor" => $this->input->post("fornecedor"),
                    "comissao" => $this->input->post("comissao"),
                    "autorizado" => $this->input->post("autorizado"),
                    "tipo" => "compra coletiva",
                    "compracoletivaMin" => $this->input->post("compraColetivaMin"),
                    "dataCadastro" => timestamp()
                    );

                $categoria = $this->input->post("categoria");
                $campos['idCategoria'] = $categoria[count($categoria)-1];

                $idInserido = $this->ProdutoModel->inserir($campos);

                if($this->input->post("diminuir_quantidade")){
                    $update['quantidade'] = $produto->quantidade - $this->input->post("quantidade");                  
                }
                $update['compraColetiva'] = true;
                $this->ProdutoModel->update($produto->idProduto, $update);

                $data_file = $this->upload->data();
                //echo $local;
                if($data_file["is_image"] != ""){
                    rename("fotos/produto/arquivo_novo".$data_file['file_ext'], "fotos/produto/$idInserido".$data_file['file_ext']);
                }
                elseif($local != false){
                    if(strstr($local,"jpg"))
                        copy($local,"fotos/produto/$idInserido.jpg");
                    elseif(strstr($local,"png"))
                        copy($local,"fotos/produto/$idInserido.png");
                    elseif(strstr($local,"gif"))
                        copy($local,"fotos/produto/$idInserido.gif");
                }

               $this->Log->inserir(tipo_usuario(), id_tipo_usuario(), "cadastrou", "produto", $idInserido);
               redirect("admin/produto/fornecedor/$idFornecedor/sucesso");
            }
        endif;
    }

    public function criar_cc_intencao($idCategoria = ""){
        if($idCategoria == "") show_error("É necessário especificar uma categoria");

        $this->load->helper("form");
        $this->load->library("form_validation");
        $produtos = $this->ProdutoModel->getProdutoCategoriaAutorizado($idCategoria);

        if ($produtos == false) show_error("Não foram encontrados produtos nesta categoria");

        $categoriasArray = $this->CategoriaModel->getCategoriaAtualPais($idCategoria);
        

        $row = $this->FornecedorModel->listar();
        $fornecedores = "";
        foreach($row->result() as $fornecedor) :
            $fornecedores .= "<option value=\"$fornecedor->idFornecedor\"" .set_select("fornecedor", $fornecedor->idFornecedor). ">$fornecedor->nome</option>\n";
        endforeach;

        $produtosSelect = "";
        foreach($produtos->result() as $produto) :
            $produtosSelect.= "<option value=\"$produto->idProduto\"".
                    set_select("produto", $fornecedor->idProduto). ">$produto->nome</option>\n";
        endforeach;

        $dados = array(
            "titulo" => "Criar Intenção e Compra Coletiva",
            "categoriasArray" => $categoriasArray,
            "produtosSelect" => $produtosSelect,
            "idCategoria" => $idCategoria,
            "fornecedores" =>$fornecedores
            );
        $main = array(
            "dados" => $dados,
            "link" => "admin/cad_produto_cc_intencao_view",
            );

        $this->form_validation->set_rules('nome', 'Nome', 'required|min_length[4]');
        $this->form_validation->set_rules('descricao', 'Descrição');
        $this->form_validation->set_rules('quantidade', 'Quantidade', 'required|numeric');
        $this->form_validation->set_rules('preco', 'Preço', 'required');
        $this->form_validation->set_rules('precoAntigo', 'Preço Antigo', 'required');
        $this->form_validation->set_rules('prazoEntrega', 'Prazo de Entrega', 'required');
        $this->form_validation->set_rules('prazoPagamento', 'Prazo de Pagamento', 'required');
        $this->form_validation->set_rules('formaPagamento', 'Forma de Pagamento', 'required');
        $this->form_validation->set_rules('categoria[]', 'Categoria', 'callback_select_check');
        $this->form_validation->set_rules('fornecedor', 'Fornecedor','callback_select_check');
        $this->form_validation->set_rules('comissao', 'Comissao', 'required');
        $this->form_validation->set_rules('autorizado', 'Autorizado', 'required');
        $this->form_validation->set_rules('compraColetivaMin', 'CompraColetivaMin','required');

        if ($this->form_validation->run() == false) :
            $this->load->view('template', $main);

        else :

            $dir = './fotos/produto/';
            $config['upload_path'] = $dir;
            $config['allowed_types'] = 'gif|jpg|png';
            $config['file_name'] = "arquivo_novo";
            $config['max_size']	= '1000';
            $config['max_width']  = '1024';
            $config['max_height']  = '768';

            $this->load->library('upload', $config);
            $this->upload->do_upload();
            if( strstr("Você não selecionou um arquivo para envio", $this->upload->display_errors())){
                $dados["erro"] = $this->upload->display_errors();
                $main['dados'] = $dados;
                $this->load->view('template', $main);
            }
            else{
                $campos = array(
                    "nome"  => $this->input->post("nome"),
                    "descricao" => $this->input->post("descricao"),
                    "quantidade" => $this->input->post("quantidade"),
                    "preco" => preco_bd($this->input->post("preco")),
                    "precoAntigo" => preco_bd($this->input->post("precoAntigo")),
                    "formaPagamento" => $this->input->post("formaPagamento"),
                    "prazoPagamento" => $this->input->post("prazoPagamento"),
                    "prazoEntrega" => $this->input->post("prazoEntrega"),
                    "idFornecedor" => $this->input->post("fornecedor"),
                    "comissao" => $this->input->post("comissao"),
                    "autorizado" => $this->input->post("autorizado"),
                    "idCategoria" => $idCategoria,
                    "dataCadastro" => timestamp()
                    );

                $this->load->helper('mail');
                $clienteUsuarios = $this->Selects->getIntencaoClienteUsuarioByCategoria($idCategoria);
                if($clienteUsuarios == false) show_error ("Não há clientes cadastrados nessa intenção");

                $local = foto_produto_local($this->input->post("produto"));

                $campos["tipo"] = "intencao";
                $quantidade_cc = 0;
                $nao_reservado = array();
                foreach($clienteUsuarios->result() as $clienteUsuario){
                    if($clienteUsuario->reservar == true){
                   // if($clienteUsuario->reservar == true && time() >= strtotime($clienteUsuario->data)){
                        $campos["idProduto"] = null;
                        $quantidade_cc += $clienteUsuario->quantidade;
                        $campos["quantidade"] = $clienteUsuario->quantidade;
                        $campos["intencao_codigo"] = md5($clienteUsuario->cemail);
                        $idInserido = $this->ProdutoModel->inserir($campos);

                        $campos["idProduto"] = $idInserido;

                        //Indexa a foto
                        if($data_file["is_image"] != ""){
                            rename("fotos/produto/arquivo_novo".$data_file['file_ext'], "fotos/produto/$idInserido".$data_file['file_ext']);
                        }
                        elseif($local != false){
                            if(strstr($local,"jpg"))
                                copy($local,"fotos/produto/$idInserido.jpg");
                            elseif(strstr($local,"png"))
                                copy($local,"fotos/produto/$idInserido.png");
                            elseif(strstr($local,"gif"))
                                copy($local,"fotos/produto/$idInserido.gif");
                        }
                        $data_file = $this->upload->data();

                        if($clienteUsuario->cemail == $clienteUsuario->uemail)
                            emailInformaCadastroIntencaoClienteReservado($clienteUsuario, (object)$campos);
                        else{
                            emailInformaCadastroIntencaoUsuarioReservado($clienteUsuario, $campos);
                            emailInformaCadastroIntencaoClienteUsuarioReservado($clienteUsuario, $campos);
                        }
                    }
                    else {
                        echo 1;
                        array_push($nao_reservado, $clienteUsuario);
                    }
                }

                $campos["tipo"] = "compra coletiva";
                $campos["compracoletivaMin"] = $this->input->post("compraColetivaMin");
                $campos["quantidade"] = $this->input->post("quantidade") - $quantidade_cc;

                if($campos['quantidade'] > 0){
                    $campos["idProduto"] = null;
                    $idInserido = $this->ProdutoModel->inserir($campos);

                    if($this->input->post("diminuir_quantidade")){
                        $update['quantidade'] = $this->input->post("quantidade") - $this->input->post("quantidade");
                    }
                    $update['compraColetiva'] = true;
                    $this->ProdutoModel->update($this->input->post("produto"), $update);

                    foreach($nao_reservado as $clienteUsuario){
                        if($clienteUsuario->cemail == $clienteUsuario->uemail)
                            emailInformaCadastroIntencaoCliente($clienteUsuario, $campos);
                        else{
                            emailInformaCadastroIntencaoUsuario($clienteUsuario, $campos);
                            emailInformaCadastroIntencaoClienteUsuario($clienteUsuario, $campos);
                        }
                    }
                }
                
                //echo $local;

               $this->Log->inserir(tipo_usuario(), id_tipo_usuario(), "cadastrou", "produto", $idInserido);
               //redirect("admin/produto/fornecedor/".$this->input->post("fornecedor")."/sucesso");
            }
        endif;
    }

    public function criar_intencao($idProduto = "", $idFornecedor = ""){
        if($idProduto == "") show_error("ERRO");

        $this->load->helper("form");
        $this->load->library("form_validation");
        $produto = $this->ProdutoModel->getProduto($idProduto);

        if ($produto == false) show_error("Este produto n&atildeo existe");

        $categoriasArray = $this->CategoriaModel->getCategoriaAtualPais($produto->idCategoria);
        if ($categoriasArray == false) show_404 ();
        $max = count($categoriasArray);
        //print_r($categoriasArray);
        if( $max > 0 ) {
            $categorias = array();
            for($i=$max-1, $j=0; $i>-1 ; $j++, $i--){
                if($j==0)
                    $row = $this->CategoriaModel->getCategoriaNivel($j);
                else
                    $row = $this->CategoriaModel->getCategoriaFilhos ($categoriasArray[$i+1]->idCategoria);
                if( $row != false) {
                        if($j==0)
                            $categorias[$j] .= "<label> <p>Categoria</p>";
                        else
                            $categorias[$j] .= "<label><p style=\"float: left\">Sub-Nivel ".($max-$i)." </p>";
                        $categorias[$j] .= "<select name=\"categoria[]\" id=\"categoria_".($max-$i)."\" onchange=\"teste(this)\">";
                        $categorias[$j] .= "<option value=\"0\">--Selecione--</option>";
                    foreach($row->result() as $categoria) {
                        if($categoria->idCategoria ==  $categoriasArray[$i]->idCategoria){
                            $categorias[$j] .= "<option value=\"$categoria->idCategoria\" selected=\"selected\">$categoria->nome</option>\n";
                            }
                        else
                            $categorias[$j] .= "<option value=\"$categoria->idCategoria\">$categoria->nome</option>\n";

                    }
                    $categorias[$j] .= "</select><br clear=\"left\"></label>";
                }
                else show_error ("Erro nas categorias");
            }
        }
        
        $row = $this->FornecedorModel->listar();
        $fornecedores = "";
        foreach($row->result() as $fornecedor) :
            if($produto->idFornecedor == $fornecedor->idFornecedor)
                $fornecedores .= "<option value=\"$fornecedor->idFornecedor\" selected=\"selected\"".
                    set_select("fornecedor", $fornecedor->idFornecedor). ">$fornecedor->nome</option>\n";
            else
                $fornecedores .= "<option value=\"$fornecedor->idFornecedor\"".
                    set_select("fornecedor", $fornecedor->idFornecedor). ">$fornecedor->nome</option>\n";
        endforeach;

        $row = $this->ClienteModel->listar();
        $clientes = "";
        foreach($row->result() as $cliente) :
            if($cliente->tipo == "juridico")
                $clientes .= "<option value=\"$cliente->email\"".
                    set_select("cliente", $cliente->idCliente). ">$cliente->razaoSocial</option>\n";
            else
                $clientes .= "<option value=\"$cliente->email\"".
                    set_select("cliente", $cliente->idCliente). ">$cliente->nome</option>\n";
        endforeach;

        $local = foto_produto_local($idProduto);
        $dados = array(
            "titulo" => "Criar Oferta",
            "user" => $this->sessao->nome,
            "categoriasArray" => $categoriasArray,
            "categorias" => $categorias,
            "fornecedores" => $fornecedores,
            "clientes" => $clientes,
            "foto" => foto_produto($idProduto),
            "produto" => $produto,
            "idFornecedor" => $idFornecedor
            );
        $main = array(
            "dados" => $dados,
            "link" => "admin/cad_produto_intencao_view",
            );

        $this->form_validation->set_rules('nome', 'Nome', 'required|min_length[4]');
        $this->form_validation->set_rules('descricao', 'Descricao');
        $this->form_validation->set_rules('quantidade', 'Quantidade', 'required|numeric');
        $this->form_validation->set_rules('preco', 'Preco', 'required');
        $this->form_validation->set_rules('prazoEntrega', 'Prazo de Entrega', 'required');
        $this->form_validation->set_rules('prazoPagamento', 'Prazo de Pagamento', 'required');
        $this->form_validation->set_rules('formaPagamento', 'Forma de Pagamento', 'required');
        $this->form_validation->set_rules('categoria[]', 'Categoria', 'callback_select_check');
        $this->form_validation->set_rules('fornecedor', 'Fornecedor','callback_select_check');
        $this->form_validation->set_rules('cliente', 'Cliente','callback_select_check');
        $this->form_validation->set_rules('comissao', 'Comissao', 'required');
        $this->form_validation->set_rules('autorizado', 'Autorizado', 'required');

        if ($this->form_validation->run() == false) :
            $this->load->view('template', $main);

        else :

            $dir = './fotos/produto/';
            $config['upload_path'] = $dir;
            $config['allowed_types'] = 'gif|jpg|png';
            $config['file_name'] = "arquivo_novo";
            $config['max_size']	= '1000';
            $config['max_width']  = '1024';
            $config['max_height']  = '768';

            $this->load->library('upload', $config);
           $this->upload->do_upload();
            if( strstr("Você não selecionou um arquivo para envio", $this->upload->display_errors())){
                $dados["erro"] = $this->upload->display_errors();
                $main['dados'] = $dados;
                $this->load->view('template', $main);
            }
            else{
                $campos = array(
                    "nome"  => $this->input->post("nome"),
                    "descricao" => $this->input->post("descricao"),
                    "quantidade" => $this->input->post("quantidade"),
                    "preco" => preco_bd($this->input->post("preco")),
                    "precoAntigo" => preco_bd($this->input->post("precoAntigo")),
                    "formaPagamento" => $this->input->post("formaPagamento"),
                    "prazoPagamento" => $this->input->post("prazoPagamento"),
                    "prazoEntrega" => $this->input->post("prazoEntrega"),
                    "idFornecedor" => $this->input->post("fornecedor"),
                    "comissao" => $this->input->post("comissao"),
                    "autorizado" => $this->input->post("autorizado"),
                    "tipo" => "intencao",
                    "intencao_codigo" => md5($this->input->post("cliente")),
                    "dataCadastro" => timestamp()
                    );

                $categoria = $this->input->post("categoria");
                $campos['idCategoria'] = $categoria[count($categoria)-1];

                $idInserido = $this->ProdutoModel->inserir($campos);

                if($this->input->post("diminuir_quantidade")){
                    $update['quantidade'] = $produto->quantidade - $this->input->post("quantidade");
                    $this->ProdutoModel->update($produto->idProduto, $update);
                }

                $data_file = $this->upload->data();
                //echo $local;
                if($data_file["is_image"] != ""){
                    rename("fotos/produto/arquivo_novo".$data_file['file_ext'], "fotos/produto/$idInserido".$data_file['file_ext']);
                }
                elseif($local != false){
                    if(strstr($local,"jpg"))
                        copy($local,"fotos/produto/$idInserido.jpg");
                    elseif(strstr($local,"png"))
                        copy($local,"fotos/produto/$idInserido.png");
                    elseif(strstr($local,"gif"))
                        copy($local,"fotos/produto/$idInserido.gif");
                }

               $this->Log->inserir(tipo_usuario(), id_tipo_usuario(), "cadastrou", "produto", $idInserido);
               redirect("admin/produto/fornecedor/$idFornecedor/sucesso");
            }
        endif;
    }

    //tem que arrumar as categorias
    public function editar($id = "", $idFornecedor = ""){
        if($id == "") show_error("ERRO");

        $this->load->helper("form");
        $this->load->library("form_validation");
        $produto = $this->ProdutoModel->getProduto($id);
        if ($produto == false) show_error("Este produto n&atildeo existe");

        $pedido = $this->PedidoModel->getProdutoAndamentoEnviado($id);
        if($pedido != false) $mensagem = "Este produto possui pedidos em Andamento ou Enviados. Tenha cuidado ao Editá-lo<br>";
        else $mensagem = "";

        $categoriasArray = $this->CategoriaModel->getCategoriaAtualPais($produto->idCategoria);
        if ($categoriasArray == false) show_404 ();
        $max = count($categoriasArray);
        //print_r($categoriasArray);
        if( $max > 0 ) {
            $categorias = array();
            for($i=$max-1, $j=0; $i>-1 ; $j++, $i--){
                if($j==0)
                    $row = $this->CategoriaModel->getCategoriaNivel($j);
                else
                    $row = $this->CategoriaModel->getCategoriaFilhos ($categoriasArray[$i+1]->idCategoria);
                if( $row != false) {
                        if($j==0)
                            $categorias[$j] .= "<label> <p>Categoria</p>";
                        else
                            $categorias[$j] .= "<label><p style=\"float: left\">Sub-Nivel ".($max-$i)." </p>";
                        $categorias[$j] .= "<select name=\"categoria[]\" id=\"categoria_".($max-$i)."\" onchange=\"teste(this)\">";
                        $categorias[$j] .= "<option value=\"0\">--Selecione--</option>";
                    foreach($row->result() as $categoria) {
                        if($categoria->idCategoria ==  $categoriasArray[$i]->idCategoria){
                            $categorias[$j] .= "<option value=\"$categoria->idCategoria\" selected=\"selected\">$categoria->nome</option>\n";
                            }
                        else
                            $categorias[$j] .= "<option value=\"$categoria->idCategoria\">$categoria->nome</option>\n";
                       
                    }
                    $categorias[$j] .= "</select><br clear=\"left\"></label>";
                }
                else show_error ("Erro nas categorias");
            }
        }

        $row = $this->FornecedorModel->listar();
        $fornecedores = "";
        foreach($row->result() as $fornecedor) :
            if($produto->idFornecedor == $fornecedor->idFornecedor)
                $fornecedores .= "<option value=\"$fornecedor->idFornecedor\" selected=\"selected\"".
                    set_select("fornecedor", $fornecedor->idFornecedor). ">$fornecedor->nome</option>\n";
            else
                $fornecedores .= "<option value=\"$fornecedor->idFornecedor\"".
                    set_select("fornecedor", $fornecedor->idFornecedor). ">$fornecedor->nome</option>\n";
        endforeach;

         $options = array(
                  'normal'    => 'Normal',
                  'oferta'    => 'Oferta',
                  'compra_coletiva'    => 'Compra Coletiva',
                  'intencao'    => 'Intencao'
                );
        $tipo = form_dropdown("status", $options, $produto->tipo, "onchange=\"tipo_append(this)\"");

        $local = foto_produto_local($id);
        $dados = array(
            "titulo" => "Edição de Produtos",
            "user" => $this->sessao->nome,
            "categoriasArray" => $categoriasArray,
            "categorias" => $categorias,
            "fornecedores" => $fornecedores,
            "foto" => foto_produto($id),
            "produto" => $produto,
            "tipo" => $tipo,
            "mensagem" => $mensagem,
            "idFornecedor" => $idFornecedor,
            );
        $main = array(
            "dados" => $dados,
            "link" => "admin/edit_produto_view",
            );

        $this->form_validation->set_rules('nome', 'Nome', 'required|min_length[4]');
        $this->form_validation->set_rules('descricao', 'Descricao');
        $this->form_validation->set_rules('quantidade', 'Quantidade', 'required|numeric');
        $this->form_validation->set_rules('preco', 'Preço', 'required');
        $this->form_validation->set_rules('prazoEntrega', 'Prazo de Entrega', 'required');
        $this->form_validation->set_rules('prazoPagamento', 'Prazo de Pagamento', 'required');
        $this->form_validation->set_rules('formaPagamento', 'Forma de Pagamento', 'required');
        $this->form_validation->set_rules('categoria[]', 'Categoria', 'callback_select_check');
        $this->form_validation->set_rules('fornecedor', 'Fornecedor','callback_select_check');
        //$this->form_validation->set_rules('comissao', 'Comissao', 'required');
        //$this->form_validation->set_rules('autorizado', 'Autorizado', 'required');
        $this->form_validation->set_rules('compraColetivaMin', 'CompraColetivaMin');

        if($produto->tipo == "compra coletiva"){
            $this->form_validation->set_rules('compraColetivaMin', 'Compra Coletiva Mínimo', "required");
            $this->form_validation->set_rules('precoAntigo', 'Preço antigo' , 'required');
        }
        elseif($produto->tipo == "oferta"){
            $this->form_validation->set_rules('precoAntigo', 'Preço antigo' ,'required');
        }
        elseif($produto->tipo == "intencao"){
            $this->form_validation->set_rules('precoAntigo', 'Preço antigo' ,'required');
            $this->form_validation->set_rules('cliente', 'Cliente' ,'callback_select_check');
        }

        if ($this->form_validation->run() == false) :
            $this->load->view('template', $main);

        else :

            $dir = './fotos/produto/';
            $config['upload_path'] = $dir;
            $config['allowed_types'] = 'gif|jpg|png';
            $config['file_name'] = "arquivo_novo";
            $config['max_size']	= '1000';
            $config['max_width']  = '1024';
            $config['max_height']  = '768';

            $this->load->library('upload', $config);
            $this->upload->do_upload();
            if( strstr("Você não selecionou um arquivo para envio", $this->upload->display_errors())){
                $dados["erro"] = $this->upload->display_errors()."<br>";
                $main['dados'] = $dados;
                $this->load->view('template', $main);
            }
            $edit = array(
                "nome"  => $this->input->post("nome"),
                "descricao" => $this->input->post("descricao"),
                "quantidade" => $this->input->post("quantidade"),
                "preco" => preco_bd($this->input->post("preco")),
                "precoAntigo" => preco_bd($this->input->post("precoAntigo")),
                "formaPagamento" => $this->input->post("formaPagamento"),
                "prazoPagamento" => $this->input->post("prazoPagamento"),
                "prazoEntrega" => $this->input->post("prazoEntrega"),
                "idFornecedor" => $this->input->post("fornecedor"),
                "comissao" => $this->input->post("comissao"),
                "autorizado" => $this->input->post("autorizado"),
                "compraColetivaMin" => $this->input->post("compraColetivaMin"),
                "destaque" => $this->input->post("destaque")
                );

            echo $this->input->post("destaque");

            $categoria = $this->input->post("categoria");
            $edit['idCategoria'] = $categoria[count($categoria)-1];

            if($produto->tipo == "intencao")  $edit['intencao_codigo'] = md5($this->input->post("cliente"));

            $this->ProdutoModel->editar($id, $edit);

            $data_file = $this->upload->data();
            if($data_file["is_image"] != "" && $local != false){
                print_r($this->upload->data());
                unlink($local);
            }
            rename("fotos/produto/arquivo_novo".$data_file['file_ext'], "fotos/produto/$id".$data_file['file_ext']);

            $this->Log->inserir(tipo_usuario(), id_tipo_usuario(), "editou", "produto", $id);
            redirect("admin/produto/fornecedor/$produto->idFornecedor/sucesso");
        endif;
    }
    /**
     * Método para validar campos do tipo select
     *
     * @param <type> $str
     * @return <type>
     */
    function select_check($str){
        if ($str == '0') :
            $this->form_validation->set_message('select_check', 'O campo %s não pode estar em branco');
            return FALSE;

        else :
            return TRUE;

        endif;
    }

    public function gerenciar(){
        print_r($this->input->post());
        if($this->input->post("deletar_x")) :
                $this->delete();
        elseif($this->input->post("autorizar_x")) :
                $this->autorizar();
        elseif($this->input->post("desautorizar_x")) :
                $this->desautorizar();
        endif;
    }

    private function delete(){
        //print_r($this->input->post());
        foreach($this->input->post() as $campo => $valor) :
            $nome = explode("_", $campo);
            //Se a primeira parte do nome do campo é produto
            if($nome[0] == "produto") :
                $pedido = $this->PedidoModel->getProdutoAndamentoEnviado($nome[1]);
                if($pedido != false) show_error ("Há um ou mais pedidos para este produto, finalize os pedidos para que possa deletá-lo");
                $this->ProdutoModel->delete( $nome[1] );
                $this->Log->inserir(tipo_usuario(), id_tipo_usuario(), "deletou", "produto", $nome[1]);
                $nome = "";
            endif;
        endforeach;
        redirect("admin/produto/index/sucesso");
    }

    private function autorizar(){
        //print_r($this->input->post());
        foreach($this->input->post() as $campo => $valor) :
            $nome = explode("_", $campo);
            //Se a primeira parte do nome do campo é produto
            if($nome[0] == "produto") :
                $vetor = array( "autorizado" => 1);
                $this->ProdutoModel->editar($nome[1],$vetor );
                $this->Log->inserir(tipo_usuario(), id_tipo_usuario(), "autorizou", "produto", $nome[1]);
                $nome = "";
            endif;
        endforeach;
        redirect("admin/produto/index/sucesso");

    }
    private function desautorizar(){
        //print_r($this->input->post());
        foreach($this->input->post() as $campo => $valor) :
            $nome = explode("_", $campo);
            //Se a primeira parte do nome do campo é produto
            if($nome[0] == "produto") :
                $vetor = array( "autorizado" => 0);
                $this->ProdutoModel->editar($nome[1],$vetor );
                $this->Log->inserir(tipo_usuario(), id_tipo_usuario(), "desautorizou", "produto", $nome[1]);
                $nome = "";
            endif;
        endforeach;
        redirect("admin/produto/index/sucesso");
    }
    
    public function f_gerenciar($idFornecedor = ""){
        //print_r($this->input->post());
        if($idFornecedor == "") show_404 ();
        if($this->input->post("deletar_x")) :
                $this->f_delete($idFornecedor);
        elseif($this->input->post("autorizar_x")) :
                $this->f_autorizar($idFornecedor);
        elseif($this->input->post("desautorizar_x")) :
                $this->f_desautorizar($idFornecedor);
        endif;
    }

    private function f_delete($idFornecedor){
        //print_r($this->input->post());
        foreach($this->input->post() as $campo => $valor) :
            $nome = explode("_", $campo);
            //Se a primeira parte do nome do campo é produto
            if($nome[0] == "produto") :
                $pedido = $this->PedidoModel->getProdutoAndamentoEnviado($nome[1]);
                if($pedido != false) show_error ("Há um ou mais pedidos para este produto, finalize os pedidos para que possa deletá-lo");
                $this->ProdutoModel->delete( $nome[1] );
                $this->Log->inserir(tipo_usuario(), id_tipo_usuario(), "deletou", "produto", $nome[1]);
                $nome = "";
            endif;
        endforeach;
        redirect("admin/produto/fornecedor/$idFornecedor/sucesso");
    }

    private function f_autorizar($idFornecedor){
        //print_r($this->input->post());
        foreach($this->input->post() as $campo => $valor) :
            $nome = explode("_", $campo);
            //Se a primeira parte do nome do campo é produto
            if($nome[0] == "produto") :
                $vetor = array( "autorizado" => 1);
                $this->ProdutoModel->editar($nome[1],$vetor );
                $this->Log->inserir(tipo_usuario(), id_tipo_usuario(), "autorizou", "produto", $nome[1]);
                $nome = "";
            endif;
        endforeach;
        redirect("admin/produto/fornecedor/$idFornecedor/sucesso");

    }
    private function f_desautorizar($idFornecedor){
        //print_r($this->input->post());
        foreach($this->input->post() as $campo => $valor) :
            $nome = explode("_", $campo);
            //Se a primeira parte do nome do campo é produto
            if($nome[0] == "produto") :
                $vetor = array( "autorizado" => 0);
                $this->ProdutoModel->editar($nome[1],$vetor );
                $this->Log->inserir(tipo_usuario(), id_tipo_usuario(), "desautorizou", "produto", $nome[1]);
                $nome = "";
            endif;
        endforeach;
        redirect("admin/produto/fornecedor/$idFornecedor/sucesso");
    }

}

    function montaSelectCategorias($idCategoria,$nivel){
        $categorias = "";
        if ($nivel == 0){
            $categ = $this->CategoriaModel->getCategoria($idCategoria);
            $row = $this->CategoriaModel->getCategoriaNivel($nivel);
            if( $row->num_rows() > 0 ) :
                foreach($row->result() as $categoria) :
                    if($categorias->idCategoria == $categ->idCategoria)
                        $categorias .= "<option value=\"$categoria->idCategoria\" select= \"selected\"". set_select("categoria_1", $categoria->nome). ">$categoria->nome</option>\n";
                    else
                        $categorias .= "<option value=\"$categoria->idCategoria\"". set_select("categoria_1", $categoria->nome). ">$categoria->nome</option>\n";
                endforeach;
            else :
                break;
            endif;
        }
    }